<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>04_promise基本使用</title>
  </head>

  <body>
    <script>
      // 1. 创建一个新的promise对象
      const p = new Promise((resolve, reject) => { // 执行器函数  同步回调
        console.log('执行 excutor')
        // 2. 执行异步操作任务
        setTimeout(() => {
          const time = Date.now() // 如果当前时间是偶数就代表成功, 否则代表失败
          // 3.1. 如果成功了, 调用resolve(value)
          if (time % 2 == 0) {
            resolve('成功的数据, time=' + time)
          } else {
            // 3.2. 如果失败了, 调用reject(reason)
            reject('失败的数据, time=' + time)
          }
        }, 1000);
      })
      console.log('new Promise()之后');

      setTimeout(() => {
        p.then(
          value => { // 接收得到成功的value数据    onResolved
            console.log('成功的回调', value)
          },
          reason => { // 接收得到失败的reason数据  onRejected
            console.log('失败的回调', reason)
          }
        )
      }, 2000);
    </script>
  </body>

</html>